Multiple similar devices (for example, Ethernet switches) may be communicatively coupled to each other to form a so-called “stack” of devices. Typically, one of these network devices serves as the main controller or “base-unit” of the stack responsible for controlling the stack formation, maintaining and distributing configuration parameters, and handling configuration requests. Once the stack is formed, a single network address can be used to access the management entity on the base-unit, which can be reached through any network port of the devices making up the stack. Furthermore, the devices in a stack are typically capable of detecting and communicating a failure of another device in the stack and adapting their functionality accordingly. In this way, a stack of devices may provide continued functionality despite a failure of one or more devices in the stack.
Where the stack of devices are all Ethernet switches, each switch may provide a different number of Ethernet ports (e.g., typically anywhere from 12 to 48 ports) or ports with different physical characteristics, such as speed (e.g., 10Base-T, 100Base-T, 10 GbE), media type (e.g., copper, fiber), or capabilities (e.g., power-over-ethernet (POE)). Thus, a stack of such switches present a grouping of all these ports into one system managed as a single entity.
Certain features of a stackable device may be determined, in part, by the hardware of the device. For example, the number of ports that a stackable Ethernet switch supports or whether the switch supports POE. However, other features of the stackable device may be determined by the software or firmware installed in the device. For example, an Ethernet switch's network security features, or its response to hardware or network failures, are often determined by its software. Thus, the features of a stackable device may be hardware or software features.
A manufacturer may offer a product line with related products having differing hardware or software features, and differing prices, but common elements in the hardware platform. Typically, such a manufacturer creates a different software release for each product in the product line. The software release for each product includes only the features offered by that product.
A customer that needs, and is willing to pay for, only a subset of the hardware or software features of a particular product, presents such a manufacturer with a difficult decision. The manufacturer may refuse to change its product line, thereby forcing the customer to buy more features than are needed. Or, the manufacturer may create yet another product in the product line, including in the software only those features desired by the customer. Choosing the second solution requires the manufacturer to support an ever-increasing number and variety of software versions.
There is, therefore, a need for a method of enabling in a plurality of stackable devices only those features that a customer has chosen to purchase.